#pragma once

#include "util.hpp"
#include "level.hpp"
#include <thread>
#include <memory>

namespace yd
{
    struct log_msg
    {
        using ptr = std::shared_ptr<log_level>;
        size_t _line;           // 行号
        size_t _ctime;          // 时间
        std::thread::id _tid;   // 线程ID
        std::string _name;      // 日志器名称
        std::string _file;      // 文件名
        std::string _payload;   // 日志消息
        log_level::value _level; // 日志等级

        log_msg(const std::string &name,const std::string file,size_t line,const std::string &&payload,log_level::value level)
        :_name(name)
        ,_file(file)
        ,_payload(payload)
        ,_level(level)
        ,_line(line)
        ,_ctime(yd::date::now())
        ,_tid(std::this_thread::get_id()){}
    };

}